NVSHMEM 故障排查 & 调试工具链
📘 风格 · 30章完全指南
🧑🏫
30节实战 · 从入门到精通
1
NVSHMEM 概述与调试挑战
NVSHMEM 是什么 · 调试必要性 · 故障类型
2
NVSHMEM 开发环境搭建
CUDA Toolkit · 库安装 · 编译器选项
3
基础通信模型
对称内存 · PE · P2P/Collective · 同步
4
调试工具链总览
静态分析 · 运行时检查 · 性能剖析
5
GDB 调试 NVSHMEM 程序
多进程 · 附加PE · 断点 · 死锁竞态
6
CUDA-GDB 与 NVSHMEM 集成
GPU内核调试 · 跨PE会话管理
7
运行时错误检查
错误码 · shmem_global_exit · 异常退出
8
内存检测工具
cuda-memcheck · compute-sanitizer
9
性能剖析工具
nvprof · Nsight Systems · 通信事件
10
Nsight Compute 内核分析
Occupancy · 带宽 · 指令级性能
11
NVSHMEM 日志系统
INFO/DEBUG 环境变量 · 日志解析
12
静态代码分析工具
PC-lint · Clang-Tidy · API 检查
13
死锁检测与预防
超时 · PE编号 · 死锁检测工具
14
竞态条件调试
TSan · 原子操作 · 典型竞态场景
15
通信超时与故障恢复
超时参数 · 故障检测 · 容错编程
16
多 GPU 拓扑感知调试
NVLink/NVSwitch · 亲和性 · 跨节点
17
MPI+NVSHMEM 混合调试
初始化顺序 · 通信域隔离 · 策略
18
内存泄漏检测
Valgrind · 自定义跟踪 · 泄漏模式
19
调试脚本自动化
Python封装 · 日志收集 · 回归测试
20
调试案例实战(一)
P2P数据损坏 · 对称地址不匹配
21
调试案例实战(二)
Collective挂起 · Barrier死锁
22
调试案例实战(三)
GPU内核NVSHMEM异常 · 栈回溯
23
调试案例实战(四)
多节点性能骤降 · 网络拥塞
24
调试案例实战(五)
内存池耗尽 · 动态共享内存
25
调试最佳实践
编码规范 · 断言 · 日志 · TDD
26
调试工具链扩展
自定义钩子 · LD_PRELOAD · 动态插桩
27
CI/CD 集成调试
GitLab CI · 自动化测试套件
28
调试社区与资源
NVIDIA论坛 · GitHub · 官方文档
29
调试未来趋势
AI辅助 · 可观测性 · 异构标准
30
综合实战:从零调试分布式训练
完整调试报告 · 端到端流程